package cn.jzk.aitest.Service.Impl;

import cn.jzk.aitest.Service.ChatHistoryService;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author jiangzk
 * 2025/4/22  下午4:07
 */
@Service
public class ChatHistoryServiceImpl implements ChatHistoryService {

    // 使用 map 集合进行存储
    private final Map<String, List<String>> chatHistoryMap = new HashMap<>();


    /**
     * 保存会话记录（这里的 type 可根据需求进行更改，chatId 建议保留以作为会话的唯一ID）
     */
    @Override
    public void save(String type, String chatId) {

        // 1.判断当前是否存在对应的 type 类型，若不存在则新增
        if (! chatHistoryMap.containsKey(type)) {
            chatHistoryMap.put(type, new ArrayList<>());
        }

        // 2.判断当前的 type 对应的 会话集合ID 是否含有当前的会话ID
        List<String> chatIds = chatHistoryMap.get(type);
        if (chatIds.contains(chatId)) {
            return;
        }
        chatIds.add(chatId);
    }


    /**
     * 获取会话列表信息（这里的 type 可根据需求进行更改）
     */
    @Override
    public List<String> getChatIds(String type) {

        List<String> chatIds = chatHistoryMap.get(type);
        return chatIds == null ? new ArrayList<>() : chatIds;
    }
}
